Skip to content

Conversation

@tilo-14
Copy link
Contributor

@tilo-14 tilo-14 commented Jan 29, 2026

Summary

  • Bump TS SDK to 0.23.0-beta.3 (matches devnet v2.2.0 programs)
  • Bump Rust deps to light-token-interface 0.3.0, light-compressed-account 0.9.0 from crates.io
  • Rewrite streaming-tokens to use account subscription (light mints are now Solana accounts)

Open with Devin

Copy link

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 5 additional flags.

Open in Devin Review

tilo-14 added 22 commits February 1, 2026 18:14
- Remove AI index line from README.md
- Delete keypair.json from create-token-account program
- Simplify test println statements to only output transaction signature

The transaction signature provides all necessary information for
verification and is more useful than verbose descriptive text.
- Remove all TypeScript test files (tests/*.ts)
- Remove package.json and tsconfig.json
- Remove .claude/settings.json and BURN_ARCHITECTURE.md
- Add .gitignore for node_modules, target, TS files
- Update Anchor.toml test script to use cargo test-sbf

Rust integration tests remain in programs/*/tests/test.rs
Copy link

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 new potential issues.

View issues and 8 additional flags in Devin Review.

Open in Devin Review

Comment on lines +26 to +27
"create-interface-pda:action": "tsx actions/create-interface-pda.ts",
"create-interface-pda:instruction": "tsx instructions/create-interface-pda.ts",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Package.json scripts reference non-existent files

The npm scripts create-interface-pda:action and create-interface-pda:instruction reference files that don't exist, causing the scripts to fail when run.

Click to expand

Details

The package.json defines scripts:

"create-interface-pda:action": "tsx actions/create-interface-pda.ts",
"create-interface-pda:instruction": "tsx instructions/create-interface-pda.ts"

But the actual files in the filesystem are named create-spl-interface.ts:

  • actions/create-spl-interface.ts
  • instructions/create-spl-interface.ts

Actual behavior: Running npm run create-interface-pda:action will fail with a file not found error.

Expected behavior: The script names should match the actual file names.

Impact: Users following the package.json scripts will encounter errors when trying to run these commands.

Recommendation: Rename the scripts to match the actual file names:

"create-spl-interface:action": "tsx actions/create-spl-interface.ts",
"create-spl-interface:instruction": "tsx instructions/create-spl-interface.ts"
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

.unwrap();

for ix in &msg.instructions {
let prog_key = &msg.account_keys[ix.program_id_index as usize];

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Potential index out of bounds panic when accessing account_keys

The code accesses msg.account_keys[ix.program_id_index as usize] without bounds checking, which can cause a panic if program_id_index exceeds the length of account_keys.

Click to expand

Details

In toolkits/streaming-tokens/src/main.rs:148:

let prog_key = &msg.account_keys[ix.program_id_index as usize];

If the stream delivers malformed transaction data where program_id_index is greater than or equal to account_keys.len(), the code will panic with an index out of bounds error.

Actual behavior: Panic occurs if program_id_index >= account_keys.len().

Expected behavior: The code should handle potentially invalid index gracefully, either by bounds-checking or using .get() with proper error handling.

Impact: A malformed transaction in the stream can crash the entire streaming application.

Recommendation: Use .get() with bounds checking:

let Some(prog_key) = msg.account_keys.get(ix.program_id_index as usize) else {
    continue;
};
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@tilo-14 tilo-14 merged commit ea05f3a into main Feb 1, 2026
1 check passed
@tilo-14 tilo-14 deleted the streaming-tokens branch February 1, 2026 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants